package com.frontop.system.modules.user.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.frontop.common.util.ResultJsonUtil;
import com.frontop.system.modules.user.model.TUser;
import com.frontop.system.modules.user.model.TUserShowInfo;
import com.frontop.system.modules.user.vo.TUserVO;
import org.springframework.security.core.Authentication;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 * 用户表	 服务类
 * </p>
 *
 * @author YangJia
 * @since 2021-09-13
 */
public interface TUserService extends IService<TUser> {

    Page<TUserShowInfo> selectUserPage(Page<TUserShowInfo> page, TUserVO vo);

    /**
     * 用户查询个人信息
     * @param userName
     * @return
     */
    TUserShowInfo selectShowUserInfo(String userName);

    String getThisLoginUserName(Authentication authentication);

    /**
     * 用户上传头像
     * @param userName
     * @param multipartFile
     */
    String userUploadHeadImage(String userName, MultipartFile multipartFile);

    /**
     * 用户修改密码
     * @param oldPwd 旧密码
     * @param newPwd 新密码
     * @param repeatPwd 确认密码
     * @param userName 用户名
     */
    ResultJsonUtil<Object> updatePassword(String oldPwd, String newPwd, String repeatPwd, String userName);

    int deleteUserByUserName(String userName);

}
